home *** CD-ROM | disk | FTP | other *** search
/ Delphi 5 for Professionals / DELPHI5.iso / AddOns / Components / TEECHART / Src Code / SHAPEEDI.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1998-10-24  |  4.6 KB  |  175 lines

  1. {****************************************}
  2. {    TChartShape Editor Dialog           }
  3. { Copyright (c) 1996-98 by David Berneda }
  4. {****************************************}
  5. {$I teedefs.inc}
  6. unit ShapeEdi;
  7.  
  8. interface
  9.  
  10. uses
  11.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  12.   Forms, Dialogs, StdCtrls, ExtCtrls, Chart, Buttons, Teengine, TeeShape;
  13.  
  14. type
  15.   TChartShapeEditor = class(TForm)
  16.     BShapePen: TButton;
  17.     BShapeBrush: TButton;
  18.     SHColor: TShape;
  19.     SEX0: TEdit;
  20.     Label1: TLabel;
  21.     LX1: TLabel;
  22.     SEX1: TEdit;
  23.     Label2: TLabel;
  24.     SEY0: TEdit;
  25.     LY1: TLabel;
  26.     SEY1: TEdit;
  27.     Button1: TButton;
  28.     RGAlign: TRadioGroup;
  29.     Label5: TLabel;
  30.     MemoText: TMemo;
  31.     CBTrans: TCheckBox;
  32.     BShapeColor: TButton;
  33.     CBStyle: TComboBox;
  34.     Label3: TLabel;
  35.     procedure BShapePenClick(Sender: TObject);
  36.     procedure FormShow(Sender: TObject);
  37.     procedure SHColorMouseUp(Sender: TObject; Button: TMouseButton;
  38.       Shift: TShiftState; X, Y: Integer);
  39.     procedure SEX0Change(Sender: TObject);
  40.     procedure SEY0Change(Sender: TObject);
  41.     procedure SEX1Change(Sender: TObject);
  42.     procedure SEY1Change(Sender: TObject);
  43.     procedure BShapeBrushClick(Sender: TObject);
  44.     procedure MemoTextChange(Sender: TObject);
  45.     procedure RGAlignClick(Sender: TObject);
  46.     procedure Button1Click(Sender: TObject);
  47.     procedure CBTransClick(Sender: TObject);
  48.     procedure BShapeColorClick(Sender: TObject);
  49.     procedure CBStyleChange(Sender: TObject);
  50.   private
  51.     { Private declarations }
  52.     CreatingForm:Boolean;
  53.   public
  54.     { Public declarations }
  55.     TheSeries:TChartShape;
  56.   end;
  57.  
  58. implementation
  59.  
  60. {$R *.DFM}
  61. Uses PenDlg, BrushDlg, TeeProcs;
  62.  
  63. procedure TChartShapeEditor.BShapePenClick(Sender: TObject);
  64. begin
  65.   EditPen(Self,TheSeries.Pen);
  66. end;
  67.  
  68. procedure TChartShapeEditor.FormShow(Sender: TObject);
  69. begin
  70.   CreatingForm:=True;
  71.   Screen.Cursor:=crDefault;
  72.   if Tag=0 then exit;
  73.   TheSeries:=TChartShape(Tag);
  74.   SHColor.Brush.Color:=TheSeries.Brush.Color;
  75.   SHColor.Cursor:=crTeeHand;
  76.   CBStyle.ItemIndex:=Ord(TheSeries.Style);
  77.   CBTrans.Checked:=TheSeries.Transparent;
  78.   if TheSeries.Count=2 then
  79.   With TheSeries do
  80.   begin
  81.     SEX0.Text:=FloatToStr(X0);
  82.     SEY0.Text:=FloatToStr(Y0);
  83.     SEX1.Text:=FloatToStr(X1);
  84.     SEY1.Text:=FloatToStr(Y1);
  85.   end;
  86.   MemoText.Font.Assign(TheSeries.Font);
  87.   MemoText.Lines:=TheSeries.Text;
  88.   Case TheSeries.Alignment of
  89.     taLeftJustify:  RGAlign.ItemIndex:=0;
  90.     taCenter:       RGAlign.ItemIndex:=1;
  91.     taRightJustify: RGAlign.ItemIndex:=2;
  92.   end;
  93.   CreatingForm:=False;
  94. end;
  95.  
  96. procedure TChartShapeEditor.SHColorMouseUp(Sender: TObject;
  97.   Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  98. begin
  99.   BShapeColorClick(Self);
  100. end;
  101.  
  102. procedure TChartShapeEditor.SEX0Change(Sender: TObject);
  103. begin
  104.   if not CreatingForm then
  105.   if SEX0.Text<>'' then TheSeries.X0:=StrToFloat(SEX0.Text);
  106. end;
  107.  
  108. procedure TChartShapeEditor.SEY0Change(Sender: TObject);
  109. begin
  110.   if not CreatingForm then
  111.   if SEY0.Text<>'' then
  112.      TheSeries.Y0:=StrToFloat(SEY0.Text)
  113. end;
  114.  
  115. procedure TChartShapeEditor.SEX1Change(Sender: TObject);
  116. begin
  117.   if not CreatingForm then
  118.   if SEX1.Text<>'' then TheSeries.X1:=StrToFloat(SEX1.Text);
  119. end;
  120.  
  121. procedure TChartShapeEditor.SEY1Change(Sender: TObject);
  122. begin
  123.   if not CreatingForm then
  124.   if SEY1.Text<>'' then
  125.      TheSeries.Y1:=StrToFloat(SEY1.Text)
  126. end;
  127.  
  128. procedure TChartShapeEditor.BShapeBrushClick(Sender: TObject);
  129. begin
  130.   EditChartBrush(Self,TheSeries.Brush);
  131.   SHColor.Brush.Color:=TheSeries.Brush.Color;
  132. end;
  133.  
  134. procedure TChartShapeEditor.MemoTextChange(Sender: TObject);
  135. begin
  136.   if not CreatingForm then TheSeries.Text:=MemoText.Lines;
  137. end;
  138.  
  139. procedure TChartShapeEditor.RGAlignClick(Sender: TObject);
  140. begin
  141.   Case RGAlign.ItemIndex of
  142.     0: TheSeries.Alignment:=taLeftJustify;
  143.     1: TheSeries.Alignment:=taCenter;
  144.     2: TheSeries.Alignment:=taRightJustify;
  145.   end;
  146. end;
  147.  
  148. procedure TChartShapeEditor.Button1Click(Sender: TObject);
  149. begin
  150.   InternalEditFont(Self,TheSeries.Font);
  151. end;
  152.  
  153. procedure TChartShapeEditor.CBTransClick(Sender: TObject);
  154. begin
  155.   TheSeries.Transparent:=CBTrans.Checked;
  156. end;
  157.  
  158. procedure TChartShapeEditor.BShapeColorClick(Sender: TObject);
  159. begin
  160.   With TheSeries do
  161.   begin
  162.     Brush.Color:=EditColor(Self,Brush.Color);
  163.     SHColor.Brush.Color:=Brush.Color;
  164.   end;
  165. end;
  166.  
  167. procedure TChartShapeEditor.CBStyleChange(Sender: TObject);
  168. begin
  169.   TheSeries.Style:=TChartShapeStyle(CBStyle.ItemIndex);
  170. end;
  171.  
  172. initialization
  173.   RegisterClass(TChartShapeEditor);
  174. end.
  175.